package com.ayf.payment.game.api.entity;

import com.ayf.payment.game.api.entity.base.AutoIncBaseEntity;
import com.ayf.payment.game.api.type.Status;
import com.ayf.payment.game.api.type.YesAndNo;

import javax.persistence.Column;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

@Table(name = "g_partition")
public class Partition extends AutoIncBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * 商户id
     */
    @Column(name = "merchant_id")
    private Integer merchantId;

    /**
     * 板模id
     */
    @Column(name = "template_id")
    private String templateId;

    /**
     * 分区名称
     */
    @Column(name = "partition_name")
    private String partitionName;

    /**
     * 是否在指定时间更改分区名称：'YES'是；'NO'否；默认'NO'
     */
    @Column(name = "is_change_name")
    private YesAndNo isChangeName;

    /**
     * 更改前名称
     */
    @Column(name = "change_name")
    private String changeName;

    /**
     * 更改时间
     */
    @Column(name = "change_time")
    private Date changeTime;

    /**
     * 服务器协议
     */
    @Column(name = "service_agreement")
    private String serviceAgreement;
    /**
     * 服务器ip
     */
    @Column(name = "server_ip")
    private String serverIp;

    /**
     * 通讯端口
     */
    @Column(name = "port_num")
    private Integer portNum;

    /**
     * 安装路径
     */
    @Column(name = "install_path")
    private String installPath;

    /**
     * 元宝蛋是否开启：'YES'是；'NO'否；默认'NO'
     */
    @Column(name = "treasure_on")
    private YesAndNo treasureOn;

    /**
     * 开区时间
     */
    @Column(name = "opening_time")
    private String openingTime;

    // 是否定时开区  0 未开区 1 已开区
    @Column(name = "opening_time_status")
    private Integer openingTimeStatus;

    /**
     * 状态：'PROHIBIT'禁用；'ENABLE'启用；默认'ENABLE'
     */
    @Column(name = "partition_status")
    private Status partitionStatus;

    /**
     * 排序编号
     */
    @Column(name = "partition_sort")
    private Integer partitionSort;
    /**
     * 是否创建脚本 0 否  1 是
     */
    @Column(name = "is_create_script")
    private Integer isCScript;

    @Column(name = "game_info_id")
    private String gameInfoId;

    /**
     * 游戏名称
     */
    @Column(name = "game_info_name")
    private String gameInfoName;

    @Transient
    private String gameCurrencyType;

    @Transient
    private String operIp;

    public String getGameCurrencyType() {
        return gameCurrencyType;
    }

    public void setGameCurrencyType(String gameCurrencyType) {
        this.gameCurrencyType = gameCurrencyType;
    }

    public String getGameInfoName() {
        return gameInfoName;
    }

    public void setGameInfoName(String gameInfoName) {
        this.gameInfoName = gameInfoName;
    }

    public String getGameInfoId() {
        return gameInfoId;
    }

    public void setGameInfoId(String gameInfoId) {
        this.gameInfoId = gameInfoId;
    }

    public Integer getOpeningTimeStatus() {
        return openingTimeStatus;
    }

    public void setOpeningTimeStatus(Integer openingTimeStatus) {
        this.openingTimeStatus = openingTimeStatus;
    }

    /**
     * 获取商户id
     *
     * @return merchant_id - 商户id
     */
    public Integer getMerchantId() {
        return merchantId;
    }

    /**
     * 设置商户id
     *
     * @param merchantId 商户id
     */
    public void setMerchantId(Integer merchantId) {
        this.merchantId = merchantId;
    }

    /**
     * 获取板模id
     *
     * @return template_id - 板模id
     */
    public String getTemplateId() {
        return templateId;
    }

    /**
     * 设置板模id
     *
     * @param templateId 板模id
     */
    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    /**
     * 获取分区名称
     *
     * @return partition_name - 分区名称
     */
    public String getPartitionName() {
        return partitionName;
    }

    /**
     * 设置分区名称
     *
     * @param partitionName 分区名称
     */
    public void setPartitionName(String partitionName) {
        this.partitionName = partitionName;
    }

    /**
     * 获取更改前名称
     *
     * @return change_name - 更改前名称
     */
    public String getChangeName() {
        return changeName;
    }

    /**
     * 设置更改前名称
     *
     * @param changeName 更改前名称
     */
    public void setChangeName(String changeName) {
        this.changeName = changeName;
    }

    /**
     * 获取更改时间
     *
     * @return change_time - 更改时间
     */
    public Date getChangeTime() {
        return changeTime;
    }

    /**
     * 设置更改时间
     *
     * @param changeTime 更改时间
     */
    public void setChangeTime(Date changeTime) {
        this.changeTime = changeTime;
    }

    /**
     * 获取服务器ip
     *
     * @return server_ip - 服务器ip
     */
    public String getServerIp() {
        return serverIp;
    }

    /**
     * 设置服务器ip
     *
     * @param serverIp 服务器ip
     */
    public void setServerIp(String serverIp) {
        this.serverIp = serverIp;
    }

    /**
     * 获取通讯端口
     *
     * @return port_num - 通讯端口
     */
    public Integer getPortNum() {
        return portNum;
    }

    /**
     * 设置通讯端口
     *
     * @param portNum 通讯端口
     */
    public void setPortNum(Integer portNum) {
        this.portNum = portNum;
    }

    /**
     * 获取安装路径
     *
     * @return install_path - 安装路径
     */
    public String getInstallPath() {
        return installPath;
    }

    /**
     * 设置安装路径
     *
     * @param installPath 安装路径
     */
    public void setInstallPath(String installPath) {
        this.installPath = installPath;
    }

    /**
     * 获取开区时间
     *
     * @return opening_time - 开区时间
     */
    public String getOpeningTime() {
        return openingTime;
    }

    /**
     * 设置开区时间
     *
     * @param openingTime 开区时间
     */
    public void setOpeningTime(String openingTime) {
        this.openingTime = openingTime;
    }

    public YesAndNo getTreasureOn() {
        return treasureOn;
    }

    public void setTreasureOn(YesAndNo treasureOn) {
        this.treasureOn = treasureOn;
    }

    public Status getPartitionStatus() {
        return partitionStatus;
    }

    public void setPartitionStatus(Status partitionStatus) {
        this.partitionStatus = partitionStatus;
    }

    public Integer getPartitionSort() {
        return partitionSort;
    }

    public void setPartitionSort(Integer partitionSort) {
        this.partitionSort = partitionSort;
    }

    public Integer getIsCScript() {
        return isCScript;
    }

    public void setIsCScript(Integer isCScript) {
        this.isCScript = isCScript;
    }

    public String getServiceAgreement() {
        return serviceAgreement;
    }

    public void setServiceAgreement(String serviceAgreement) {
        this.serviceAgreement = serviceAgreement;
    }

    public YesAndNo getIsChangeName() {
        return isChangeName;
    }

    public void setIsChangeName(YesAndNo isChangeName) {
        this.isChangeName = isChangeName;
    }

    public String getOperIp() {
        return operIp;
    }

    public void setOperIp(String operIp) {
        this.operIp = operIp;
    }
}